\textbf{(a)} We will show that this problem does not always have a stable matching by showing an example were a stable matching is impossible. Assume 4 children called a, b, c, and d that have the following preferences:
\begin{center}
\begin{tabular}{l||l}
\textbf{kid} & \textbf{decreasing preference} $\rightarrow$ \\\hline\hline
a & b c d\\\hline
b & c d a\\\hline
c & d b a\\\hline
d & b c a\\
\end{tabular}
\end{center}
With these priority, every possible matching of a is unstable:
\begin{center}
\begin{tabular}{l||l}
\textbf{matchings} & \textbf{but} \\\hline\hline
a $\leftrightarrow$ b & b prefers d\\
c $\leftrightarrow$ d & d prefers b\\\hline
a $\leftrightarrow$ c & c prefers b\\
b $\leftrightarrow$ d & b prefers c\\\hline
a $\leftrightarrow$ d & d prefers c\\
b $\leftrightarrow$ c & c prefers d\\\hline
\end{tabular}
\end{center}
Thus, it is impossible to find a stable matching in this case.\\\\

\textbf{(b)} We would use the following algorithm for allocating the toys:
\begin{figure}[h]
\lstset{language=C, tabsize=2, frame=none, numbers=left, basicstyle=\small}
	\begin{lstlisting}[language=C]
	ROUND = 0;
	while (there are kids with no toys) {
		ROUND = ROUND + 1;
		for (each free toy : TOY) {
			KIDS = kids which have TOY ranked in position ROUND;
			if (KIDS is not empty) {
				select random kid (KID) from KIDS to take TOY;
				remove TOY from free toys;
				remove KID from free kids; 			
			}
		}
	}
	\end{lstlisting}
\end{figure}

Using this algorithm we are able to allocate a toy to a kid that is as high as possible in its preference list. Of course, if multiple kids have the same ranking for the same toy, only one will be the lucky.

We argue that this algorithm will allocate the toys to the children in a way that no swapping will ever happen. In order a swapping to happen, two (or a chain of more) children should prefer the other's toy. 

For simplicity, assume the case of two children\footnote{the same proof applies for a ring of children $k_1, k_2, \ldots, k_n$ that each prefers the toy of the next in the ring ($k_i$ prefers the toy of $k_{(i \% n) + 1}$)} $k_1$ and $k_2$ that were allocated toys $t_1$ and $t_2$ respectively, but they prefer each other's toys. We use the following naming:
\[ r_{11} = rank_{k_1}(t_1)\]
\[ r_{12} = rank_{k_1}(t_2)\]
\[ r_{21} = rank_{k_2}(t_1)\]
\[ r_{22} = rank_{k_2}(t_2)\]
where $rank$ is the position of a toy in the preference list, thus lower rank implies higher preference. Then:
\[ r_{11} > r_{12} \]
\[ r_{21} < r_{22} \]
since $k_1$ prefers $t_2$, while $k_2$ prefers $t_1$.

Since the allocation proceeds in rounds and in every round only toys that are ranked with $rank = round$ are allocated, then $r_{22} \leq r_{12}$, because $k_2$ ``took'' $t_2$ from $k_1$. But, in this round ($r_{22}$), $t_1$ should be already taken by $k_1$, else since $r_{22} > r_{21}$ kid $k_2$ would have taken it in round $r_{21}$. Therefore, $r_{11} \leq r_{21}$ so:
\[
\left.
\begin{array}{l}
r_{11} \leq r_{21}\\
r_{12} < r_{11}\\
r_{22} \leq r_{12}\\
r_{21} < r_{22}
\end{array}
\right| \Rightarrow r_{11} \leq r_{21} < r_{22} \leq r_{12}
\]

which leads to contradiction since $r_{12} < r_{11}$.